package com.gcb.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gcb.common.annotation.Excel;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Date;

@Data
public class OrderShipVO {
    /**
     * id
     */
    private Long id;

    /**
     * 订单号
     */
    @Excel(name = "订单号")
    private String orderNo;

    /**
     * 归属企业
     */
    private Long companyId;

    /**
     * 归属企业
     */
    @Excel(name = "归属企业")
    private String companyName;

    /**
     * 归属运营商
     */
    private Long operatorId;

    /**
     * 归属运营商名称
     */
    private String operatorName;

    /**
     * 船舶id
     */
    private Long shipId;

    /**
     * 船舶名称
     */
    @Excel(name = "船舶名称")
    private String shipName;

    /**
     * 船舶类型
     */
    private Integer shipType;

    /**
     * 船舶类型
     */
    @Excel(name = "船舶类型")
    private String shipTypeStr;

    /**
     * 船舶吨位
     */
    @Excel(name = "船舶吨位")
    private Integer shipTonLevel;

    /**
     * 船舶图片
     */
    @Excel(name = "船舶图片")
    private String shipPic;

    /**
     * 船舶当前经度
     */
    private String shipLongitude;

    /**
     * 船舶当前纬度
     */
    private String shipLatitude;

    /**
     * 空船港id
     */
    private Long originPortId;

    /**
     * 空船港名
     */
    @Excel(name = "空船港名")
    private String originPortName;

    /**
     * 空船日期
     */
    @Excel(name = "空船日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date originDate;

    /**
     * 浮动天数
     */
    @Excel(name = "浮动天数")
    private Integer floatingDays;

    /**
     * 目的港id
     */
    private String destPortIds;

    /**
     * 目的港名
     */
    @Excel(name = "目的港名")
    private String destPortNames;

    /**
     * 可放空地点id
     */
    private String pointIds;

    /**
     * 可放空地点名
     */
    @Excel(name = "可放空地点名")
    private String pointNames;

    /**
     * 运输类型 0沿海运输 1内河运输
     */
    private Integer transportType;

    /**
     * 运输类型 0沿海运输 1内河运输
     */
    @Excel(name = "运输类型")
    private String transportTypeStr;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contacts;

    /**
     * 联系人手机号
     */
    @Excel(name = "联系人手机号")
    private String contactPhone;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;

    /**
     * 订单状态 1待审核/2进行中/3已暂停/4已结束/5已取消
     */
    private Integer state;

    /**
     * 订单状态 1待审核/2进行中/3已暂停/4已结束/5已取消
     */
    @Excel(name = "订单状态")
    private String stateStr;

    /**
     * 创建类型
     */
    private String createType;

    private String createTypeStr;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private Long createBy;

    /**
     * 创建人姓名
     */
    @Excel(name = "创建人姓名")
    private String createName;

    /**
     * 创建人手机号
     */
    @Excel(name = "创建人手机号")
    private String createPhone;

    /**
     * 更新时间
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long updateBy;

    /**
     * 更新人姓名
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String updateName;

    /**
     * 更新人手机号
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String updatePhone;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stopTime;

    /**
     * 取消时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelTime;

    /**
     * 取消原因
     */
    private String cancelReason;
}

